package leetcode; /**
 * description:
 * author:张腾
 * date:2021-07-27
 */

import java.util.HashMap;

/**
 * 给你两个 没有重复元素 的数组nums1 和nums2，其中nums1是nums2的子集。
 *
 * 请你找出 nums1中每个元素在nums2中的下一个比其大的值。
 *
 * nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在，对应位置输出 -1 。
 */
public class leetcode496 {
    HashMap<Integer,Integer> map = new HashMap<>();
    int[] t;
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        t = nums2;
        int[] res = new int[nums1.length];
        for (int i = 0; i < nums2.length; i++) {
            map.put(nums2[i],i);
        }
        for (int i = 0; i < nums1.length; i++) {
            res[i] = search(nums1[i]);
        }
        return res;
    }
    public int search(int target){
        Integer index = map.get(target);
        for (int i = index+1;i < t.length; i++){
            if (t[i]>target) return t[i];
        }
        return -1;
    }
}
